﻿namespace FFF.Test.Application.Repositories.FW
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Abp.Domain.Repositories;
    using Abp.EntityFrameworkCore;
    using Abp.ObjectMapping;
    using FFF.Test.DataAccess.Framework;
    using FFF.Test.Application.Repositories.FW;
    using FFF.Test.Entity.FW;
    using FFF.Test.Entity.FW.Dto;
    using FFF.Test.Entity.FW.View;
    using FFF.Test.Application.PublicService.AppService.TreeGrid;

    /// <summary>
    /// 用户表仓储接口
    /// </summary>
    public interface IFWUserRepository :
        IRepository<FWUserEntity,
        Guid>, IRepositoriesBase<FWUserEntity, Guid, FWUserCreateInputDto, FWUserUpdateInputDto, FWUserDto, ViewFWUser, ViewFWUser>
    {
        /// <summary>
        /// 1.009 通过手机号修改密码(于大明)
        /// </summary>
        /// <param name="inDto">通过手机号修改密码输入dto</param>
        /// <returns>通过手机号修改密码输出dto</returns>
        Task<UpdatePwdByPhoneOutDto> UpdatePwdByPhoneAsync(UpdatePwdByPhoneInDto inDto);

        /// <summary>
        /// 1.003 用户登录(于大明)
        /// </summary>
        /// <param name="inDto">用户登录输入dto</param>
        /// <returns>用户登录输出dto</returns>
        Task<ViewFWUser> UserLoginAsync(UserLoginInDto inDto);

        /// <summary>
        /// 获取用户信息通过用户GUID(于大明,信息平台)
        /// </summary>
        /// <param name="userGUID">用户GUID</param>
        /// <returns>用户登录输出dto</returns>
        Task<ViewFWUser> GetUserInfoByGUID(Guid userGUID);

    }
}
